package com.yuanxiao.common.api.entity.dto;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 优惠券领劵领取/使用记录
 * @author 罗宗盛
 * @mail: lzs1115@foxmail.com
 * @date 2022-04-05 18:36:16
 */
@ApiModel("CouponRecordEntity")
@Data
public class CouponRecordDTO implements Serializable {
    private static final long serialVersionUID = 1L;

    private Long id;

	//
    @ApiModelProperty("")
    private Long deptId;

	//
    @ApiModelProperty("")
    private String deptIds;

	//操作人类型（会员：member，员工：staff，平台：sys）
    @ApiModelProperty("操作人类型（会员：member，员工：staff，平台：sys）")
    private String creatorType;

	//
    @ApiModelProperty("")
    private Long creatorId;

	//创建人
    @ApiModelProperty("创建人")
    private String creator;

	//创建时间
    @ApiModelProperty("创建时间")
    private Date createTime;

	//
    @ApiModelProperty("")
    private Long editorId;

	//更新操作人
    @ApiModelProperty("更新操作人")
    private String editor;

	//更新时间
    @ApiModelProperty("更新时间")
    private Date editTime;

	//使用状态  可用 NEW,已使用USED,过期 EXPIRED;
    @ApiModelProperty("使用状态  可用 NEW,已使用USED,过期 EXPIRED;")
    private String useStatus;

	//会员ID，须保留，有时是后台直接派券
    @ApiModelProperty("会员ID，须保留，有时是后台直接派券")
    private Long memberId;

	//会员昵称
    @ApiModelProperty("会员昵称")
    private String memberName;

	//优惠券id
    @ApiModelProperty("优惠券id")
    private Long couponId;

	//优惠券标题
    @ApiModelProperty("优惠券标题")
    private String couponTitle;

	//满减券：reduce，折扣券：discount
    @ApiModelProperty("满减券：reduce，折扣券：discount")
    private String couponType;

	//抵扣价格 / 折扣。取决于 type（满减券：reduce，折扣券：discount），type = reduce，该属性为 价格，type = discount，该属性为 折扣 ，如：0.9 表示 9 折，
    @ApiModelProperty("抵扣价格 / 折扣。取决于 type（满减券：reduce，折扣券：discount），type = reduce，该属性为 价格，type = discount，该属性为 折扣 ，如：0.9 表示 9 折，")
    private BigDecimal amount;

	//使用门槛。最低消费金额达多少可用（为0则不限制金额，无门槛）
    @ApiModelProperty("使用门槛。最低消费金额达多少可用（为0则不限制金额，无门槛）")
    private BigDecimal priceMin;

	//是否可以叠加使用（Y/N）, Y 时，只能与其他（= Y）的券叠加，不可与（= N）的券叠加
    @ApiModelProperty("是否可以叠加使用（Y/N）, Y 时，只能与其他（= Y）的券叠加，不可与（= N）的券叠加")
    private String isCombination;

	//开始时间
    @ApiModelProperty("开始时间")
    private Date startTime;

	//结束时间
    @ApiModelProperty("结束时间")
    private Date endTime;

	//订单id
    @ApiModelProperty("订单id")
    private Long orderId;

    //订单编号
    @ApiModelProperty("订单编号")
    private String orderCode;

    private Integer isDel;

    @ApiModelProperty("按劵分组数量合计")
    private Integer sumGroupTakeCount;

}
